1 + 2 + 3
[1] 6
Here we assume you have R installed on your computer and you know how to use it interactively.
The arithmetic operators are
+
-
*
(not x
)/
^
With these, you can use the R interpreter as a calculator.
You can run the following expressions in the R interpreter. The interpreter will evaluate them and return the value.
1 + 2 + 3
[1] 6
2 * 3 - 5
[1] 1
1/2 + 1/4
[1] 0.75
5^2
[1] 25
In addition to arithmetic operators, R can evaluate many common mathematical functions, such as sqrt
for square root:
sqrt(25)
[1] 5
Evaluate the following expressions.
\(\frac{1}{2} + \frac{2}{3} + \frac{3}{4}\)
\(\frac{1 + 2/3}{3 - 1/(2/3)}\)
\(1 + \frac{1}{1 + \frac{1}{1 + \frac{1}{2}}}\)
\(\sqrt{17.4^2 + 3.67^2 - 9.12^2}\)
A very basic feature of programs is that you can assign names to some values, and then use that name over and over.
<- 10 # Read: "x gets 10" x
We can verify that x
has the assigned value:
x
[1] 10
We can always assign a new value to x
.
<- 11
x x
[1] 11
The following statement updates the value of x
. First, the right-hand side is evaluated. The resulting value is assigned as a new value to x
.
<- x + 1
x x
[1] 12
Given the variables
account_balance <- 1000
interest_rate <- 0.10
update the variable account_balance
by adding the interest.
<- 1000
account_balance <- 0.10
interest_rate # write your update below (1 line)
...# end of your code
account_balance
Given the variables
account_balance <- 1000
interest_rate <- 0.10
find the value of the account_balance
after 5 update periods.
<- 1000
account_balance <- 0.10
interest_rate # write your code lines below (5 lines)
...# end of your code
account_balance
Assignments can be more complex, and may involve many variables. Consider the follwoign example:
Every year, 1% of the people living in city A move to city B, and 2% of people living in city B move to city A. If the current populations of city A and city B are 10000 and 20000, respectively, find the populations of both cities next year.
# Initialize variables
<- 10000
cityA <- 20000
cityB
# Update variables
<- cityA + 0.02*cityB - 0.01*cityA
cityA_next <- cityB + 0.01*cityA - 0.02*cityB
cityB_next <- cityA_next
cityA <- cityB_next
cityB
# Display new values
cityA
[1] 10300
cityB
[1] 19700
Note that we used intermediate variables cityA_next
and cityB_next
, instead of directly updating like cityA <- cityA + 0.02*cityB - 0.01*cityA
. Why would a direct update be a mistake? Try rerunning your program with this mistake and compare the results.